In computer networks, a message loop occurs when a message is continually forwarded among network nodes without being terminated. For example, a network may have three nodes, node A, node B, and node C. Node A may originate a message intended for a node outside of the network but reachable by node C. Node A forwards the message to node B, which forwards the message to node C. However, rather than forwarding the message to the destination, node C may erroneously forward the message back to node A, and the message may continually loop between nodes A, B, and C.
Message looping can be caused by route table misconfiguration and/or network conditions, such as link congestion or link outages. In the preceding example misconfiguration of the route table in node C may be the cause of the message looping. Alternatively, a link outage between node C and the destination may cause node C to forward the message back to node A.
Some network protocols include mechanisms for detecting and preventing message loops. For example, the Diameter protocol uses a route record attribute value pair (AVP) for each node to record its identity in a Diameter signaling message that it receives and forwards. The route record AVP is also used as a looping check for inbound messages. For example, when a node receives a Diameter signaling message, the node checks the route record AVP. If the node sees its own identifier in the route record AVP, this means that the node has previously received and processed the message and a loop may be indicated.
While protocols such as Diameter include mechanisms for detecting and preventing Diameter message looping, other protocols, such as RADIUS, do not include loop detection or prevention. As a result, RADIUS messages can loop in a network without being detected or prevented, resulting in wasting of network resources. Accordingly, there exists a need for methods, systems, and computer readable media for RADIUS message loop detection and mitigation.